/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cn.edu.nju.software.greencreditsystem.factory;

import cn.edu.nju.software.greencreditsystem.DAO.*;
import cn.edu.nju.software.greencreditsystem.DAOImpl.*;

/**
 * 作者：韩天
 * 创建时间：2011-8-2
 * 类描述：返回相应的DAO实例的工厂
 */
public class DAOFactory {
    private static BankLoginDAO blDAO = null;//BankLoginDAO的单例
    private static EnterpriseDAO eDAO = null;//EnterpriseDAO的单例
    private static EnterpriseTypeDAO etDAO = null;//EnterpriseTypeDAO的单例
    private static RepaymentRecordDAO rrDAO = null;//RepaymentRecordDAO的单例
    private static LogisticHistoryDAO logDAO = null;//LogisticHistoryDAO的单例
    private static ExcelDAO exDAO = null;//ExelDAO的单例
    private static EnvironmentFactorDAO efDAO = null;//EnvironmentFactorDAO的单例
    private static EnvironmentIndexDAO eiDAO = null;//EnvironmentIndexDAO的单例
    private static EnvironmentScoreDAO esDAO = null;//EnvironmentScoreDAO的单例
    private static EnvironmentStandardValueDAO esvDAO = null;//EnvironmentStandardValueDAO的单例
    private static EnvironmentWarningDAO ewDAO = null;//EnvironmentWarningDAO的单例
    private static EnvironmentWarningTypeDAO ewtDAO = null;//EnvironmentWarningTypeDAO的单例
    private static FinancialFactorDAO ffDAO = null;//FinancialFactorDAO的单例
    private static FinancialScoreDAO fsDAO = null;//FinancialScoreDAO的单例
    private static FinancialStandardValueDAO fsvDAO = null;//FinancialStandardValueDAO的单例
    private static FinancialWarningDAO fwDAO = null;//FinancialWarningDAO的单例
    private static FinancialWarningTypeDAO fwtDAO = null;//FinancialWarningTypeDAO的单例
    private static PredictionDAO pDAO = null;//PredictionDAO的单例
    private static SystemConstantDAO scDAO = null;//SystemConstantDAO的单例
    private static WarningTemplateDAO wtDAO = null;//WarningTemplateDAO的单例
    
    /**
     * 方法描述：取得BankLoginDAO实例的方法
     * param：
     * return：blDAO——BankLoginDAO的单例
    */
    public static BankLoginDAO getBankLoginDAOInstance(){
        if(blDAO == null) blDAO = new BankLoginDAOImpl();
        return blDAO;
    }
    
    /**
     * 方法描述：取得EnterpriseDAO实例的方法
     * param：
     * return：eDAO——EnterpriseDAO的单例
    */
    public static EnterpriseDAO getEnterpriseDAOInstance(){
        if(eDAO == null) eDAO = new EnterpriseDAOImpl();
        return eDAO;
    }
    
    /**
     * 方法描述：取得EnterpriseTypeDAO实例的方法
     * param：
     * return：etDAO——EnterpriseTypeDAO的单例
    */
    public static EnterpriseTypeDAO getEnterpriseTypeDAOInstance(){
        if(etDAO == null) etDAO = new EnterpriseTypeDAOImpl();
        return etDAO;
    }
    
    /**
     * 方法描述：取得RepaymentRecordDAO实例的方法
     * param：
     * return：rrDAO——RepaymentRecordDAO的单例
    */
    public static RepaymentRecordDAO getRepaymentRecordDAOInstance(){
        if(rrDAO == null) rrDAO = new RepaymentRecordDAOImpl();
        return rrDAO;
    }
    
    /**
     * 方法描述：取得LogisticDAO实例的方法
     * param：
     * return：logDAO——LogisticHistoryDAO的单例
    */
    public static LogisticHistoryDAO getLogisticHistoryDAOInstance(){
        if(logDAO == null) logDAO = new LogisticHistoryDAOImpl();
        return logDAO;
    }
    
    /**
     * 方法描述：取得ExcelDAO实例的方法
     * param：
     * return：exDAO——ExcelDAO的单例
    */
    public static ExcelDAO getExcelDAOInstance(){
        if(exDAO == null) exDAO = new ExcelDAOImpl();
        return exDAO;
    }
    
    /**
     * 方法描述：取得EnvironmentFactorDAO实例的方法
     * param：
     * return：efDAO——EnvironmentFactorDAO的单例
    */
    public static EnvironmentFactorDAO getEnvironmentFactorDAOInstance(){
        if(efDAO == null) efDAO = new EnvironmentFactorDAOImpl();
        return efDAO;
    }
    
    /**
     * 方法描述：取得EnvironmentIndexDAO实例的方法
     * param：
     * return：eiDAO——EnvironmentIndexDAO的单例
    */
    public static EnvironmentIndexDAO getEnvironmentIndexDAOInstance(){
        if(eiDAO == null) eiDAO = new EnvironmentIndexDAOImpl();
        return eiDAO;
    }
    
    /**
     * 方法描述：取得EnvironmentScoreDAO实例的方法
     * param：
     * return：esDAO——EnvironmentScoreDAO的单例
    */
    public static EnvironmentScoreDAO getEnvironmentScoreDAOInstance(){
        if(esDAO == null) esDAO = new EnvironmentScoreDAOImpl();
        return esDAO;
    }
    
    /**
     * 方法描述：取得EnvironmentStandardValueDAO实例的方法
     * param：
     * return：esvDAO——EnvironmentStandardValueDAO的单例
    */
    public static EnvironmentStandardValueDAO getEnvironmentStandardValueDAOInstance(){
        if(esvDAO == null) esvDAO = new EnvironmentStandardValueDAOImpl();
        return esvDAO;
    }
    
    /**
     * 方法描述：取得EnvironmentWarningDAO实例的方法
     * param：
     * return：esvDAO——EnvironmentWarningDAO的单例
    */
    public static EnvironmentWarningDAO getEnvironmentWarningDAOInstance(){
        if(ewDAO == null) ewDAO = new EnvironmentWarningDAOImpl();
        return ewDAO;
    }
    
    /**
     * 方法描述：取得EnvironmentWarningTypeDAO实例的方法
     * param：
     * return：esvDAO——EnvironmentWarningTypeDAO的单例
    */
    public static EnvironmentWarningTypeDAO getEnvironmentWarningTypeDAOInstance(){
        if(ewtDAO == null) ewtDAO = new EnvironmentWarningTypeDAOImpl();
        return ewtDAO;
    }
    
    /**
     * 方法描述：取得FinancialFactorDAO实例的方法
     * param：
     * return：ffDAO——FinancialFactorDAO的单例
    */
    public static FinancialFactorDAO getFinancialFactorDAOInstance(){
        if(ffDAO == null) ffDAO = new FinancialFactorDAOImpl();
        return ffDAO;
    }
    
    /**
     * 方法描述：取得FinancialScoreDAO实例的方法
     * param：
     * return：fsDAO——FinancialScoreDAO的单例
    */
    public static FinancialScoreDAO getFinancialScoreDAOInstance(){
        if(fsDAO == null) fsDAO = new FinancialScoreDAOImpl();
        return fsDAO;
    }
    
    /**
     * 方法描述：取得FinancialStandardValueDAO实例的方法
     * param：
     * return：fsvDAO——FinancialStandardValueDAO的单例
    */
    public static FinancialStandardValueDAO getFinancialStandardValueDAOInstance(){
        if(fsvDAO == null) fsvDAO = new FinancialStandardValueDAOImpl();
        return fsvDAO;
    }
    
    /**
     * 方法描述：取得FinancialWarningDAO实例的方法
     * param：
     * return：fwDAO——FinancialWarningDAO的单例
    */
    public static FinancialWarningDAO getFinancialWarningDAOInstance(){
        if(fwDAO == null) fwDAO = new FinancialWarningDAOImpl();
        return fwDAO;
    }
    
    /**
     * 方法描述：取得FinancialWarningTypeDAO实例的方法
     * param：
     * return：fwDAO——FinancialWarningTypeDAO的单例
    */
    public static FinancialWarningTypeDAO getFinancialWarningTypeDAOInstance(){
        if(fwtDAO == null) fwtDAO = new FinancialWarningTypeDAOImpl();
        return fwtDAO;
    }
    
    /**
     * 方法描述：取得PredictionDAO实例的方法
     * param：
     * return：pDAO——PredictionDAO的单例
    */
    public static PredictionDAO getPredictionDAOInstance(){
        if(pDAO == null) pDAO = new PredictionDAOImpl();
        return pDAO;
    }
    
    /**
     * 方法描述：取得SystemConstantDAO实例的方法
     * param：
     * return：scDAO——SystemConstantDAO的单例
    */
    public static SystemConstantDAO getSystemConstantDAOInstance(){
        if(scDAO == null) scDAO = new SystemConstantDAOImpl();
        return scDAO;
    }
    
    /**
     * 方法描述：取得WarningTemplateDAO实例的方法
     * param：
     * return：wtDAO——WarningTemplateDAO的单例
    */
    public static WarningTemplateDAO getWarningTemplateDAOInstance(){
        if(wtDAO == null) wtDAO = new WarningTemplateDAOImpl();
        return wtDAO;
    }
}
